package rothag.views.gamestep;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import rothag.controller.MainController;
import rothag.graphics.*;
import rothag.views.JPanelBase;

/**
 *
 * @author Gaetan
 */
public class RessourcesJPanel extends JPanelBase {

    private ImageIcon image;
    private JLabel bois;
    private JLabel ferDeLance;
    private JLabel pierre;
    private JLabel poterie;
    private JLabel tissu;
    private JLabel nourriture;
    private JLabel ouvrier;
    private JLabel piece;

    /** Creates new form RessourcesJPanel */
    public RessourcesJPanel(MainController controller) {
        super(controller);

        image = GraphicsHelper.getImageIcon(GraphicsParameters.pathCadreRes, this);
        if (image.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathCadreRes, this).setVisible(true);
            System.exit(1);
        }
        setOpaque(false);

        // Définition de la taille
        hauteur = image.getIconHeight();
        largeur = image.getIconWidth();

        int x = 15;
        int y = 15;
        int espace = 5;

        // Ajout des images des ressources
        ImageIcon img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgBois, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgBois, this).setVisible(true);
            System.exit(1);
        }
        JLabel label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgPierre, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgPierre, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgPoterie, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgPoterie, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgTissu, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgTissu, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();
        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgFerDeLance, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgFerDeLance, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x = 15;
        y += img.getIconHeight();

        // ajout des labels des ressources
        int hauteurLabel = 20;
        int largeurLabel = (largeur - 2 * 15) / 5;
        bois = new JLabel("0");
        bois.setHorizontalAlignment(SwingConstants.CENTER);
        bois.setForeground(Color.white);
        bois.setBounds(x, y, largeurLabel, hauteurLabel);
        add(bois);

        x += largeurLabel;

        pierre = new JLabel("0");
        pierre.setHorizontalAlignment(SwingConstants.CENTER);
        pierre.setForeground(Color.white);
        pierre.setBounds(x, y, largeurLabel, hauteurLabel);
        add(pierre);

        x += largeurLabel;

        poterie = new JLabel("0");
        poterie.setHorizontalAlignment(SwingConstants.CENTER);
        poterie.setForeground(Color.white);
        poterie.setBounds(x, y, largeurLabel, hauteurLabel);
        add(poterie);

        x += largeurLabel;

        tissu = new JLabel("0");
        tissu.setHorizontalAlignment(SwingConstants.CENTER);
        tissu.setForeground(Color.white);
        tissu.setBounds(x, y, largeurLabel, hauteurLabel);
        add(tissu);

        x += largeurLabel;

        ferDeLance = new JLabel("0");
        ferDeLance.setHorizontalAlignment(SwingConstants.CENTER);
        ferDeLance.setForeground(Color.white);
        ferDeLance.setBounds(x, y, largeurLabel, hauteurLabel);
        add(ferDeLance);

        y += hauteurLabel + 10;
        x = 10;
        espace = 4;

        // Nourriture
        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgNourriture, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgNourriture, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        nourriture = new JLabel("0");
        nourriture.setHorizontalAlignment(SwingConstants.CENTER);
        nourriture.setForeground(Color.white);
        nourriture.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(nourriture);

        x += espace + img.getIconWidth();

        // Ouvriers
        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgOuvrier, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgOuvrier, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        ouvrier = new JLabel("0");
        ouvrier.setHorizontalAlignment(SwingConstants.CENTER);
        ouvrier.setForeground(Color.white);
        ouvrier.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(ouvrier);

        x += espace + img.getIconWidth();

        // Piéces
        img = GraphicsHelper.getImageIcon(GraphicsParameters.pathImgPiece, this);
        if (img.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathImgPiece, this).setVisible(true);
            System.exit(1);
        }
        label = new JLabel(img);
        label.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(label);

        x += espace + img.getIconWidth();

        piece = new JLabel("0");
        piece.setHorizontalAlignment(SwingConstants.CENTER);
        piece.setForeground(Color.white);
        piece.setBounds(x, y, img.getIconWidth(), img.getIconHeight());
        add(piece);
    }

    @Override
    public void paint(Graphics g) {
        if (image != null) {
            JLabel label = new JLabel(image);
            label.setBounds(0, 0, largeur, hauteur);
            add(label);
        }
        super.paint(g);
    }

    /**
     * Met à jour le nombre de bois
     *
     * @param valeur Nouvelle valeur pour le bois
     */
    public void setBois(String valeur) {
        bois.setText(valeur);
    }

    /**
     * Met à jour le nombre de fer de lance
     *
     * @param valeur Nouvelle valeur pour les fers de lance
     */
    public void setFerDeLance(String valeur) {
        ferDeLance.setText(valeur);
    }

    /**
     * Met à jour le nombre de pierre
     *
     * @param valeur Nouvelle valeur pour les pierres
     */
    public void setPierre(String valeur) {
        pierre.setText(valeur);
    }

    /**
     * Met à jour le nombre de porterie
     *
     * @param valeur Nouvelle valeur pour la poterie
     */
    public void setPoterie(String valeur) {
        poterie.setText(valeur);
    }

    /**
     * Met à jour le tissu
     *
     * @param valeur Nouvelle valeur pour le tissu
     */
    public void setTissu(String valeur) {
        tissu.setText(valeur);
    }

    /**
     * Met à jour la nourriture
     *
     * @param valeur Nouvelle valeur pour la nourriture
     */
    public void setNourriture(String valeur) {
        nourriture.setText(valeur);
    }

    /**
     * Met à jour le nombre d'ouvriers
     *
     * @param valeur Nouvelle valeur pour les ouvriers
     */
    public void setOuvrier(String valeur) {
        ouvrier.setText(valeur);
    }

    /**
     * Met à jour le nombre de pièces
     *
     * @param valeur Nouvelle valeur pour les pièces
     */
    public void setPieces(String valeur) {
        piece.setText(valeur);
    }
}
